package nio;

import java.nio.charset.Charset;

/**
 * @author RJA
 * @version V1.0
 * @Title: nio.demo_1
 * @Description:
 * @date 2019/9/10 10:38
 */
public class NioTest13 {
    /**
     * ASCII码 -- 7bit表示一个字符，可以表示128个字符
     * ISO8859-1 -- 8bit表示一个byte，可以表示256个字符（所以完全兼容ASCII码，0-127表示ASCII码，之后就是自定义的）
     * GB2312 -- 对所有汉字进行编码，2个字节表示一个字符（2byte - 1char），但没表示生僻字
     * GBK -- 对GB2312的延伸，加入了生僻字
     * GB18030 -- 最完整简体汉字编码形式
     * BIG5 -- 针对繁体中文（湾湾用）
     * UNICODE -- 表示全世界所有的字符编码形式，采用2个字节表示一个字符（2byte - 1char），但对于一些国家而言，例如全英文的，存储容量太大，不适合存储，存在空间浪费
     * UTF（UTF-8、UTF-16、UTF-32是UTF的实现方式） -- unicode translation format，是一种存储方式而UNICODE是一种编码方式，2个字节表示一个字符
     * UFT-8 -- 变长的字符表示形式，根据不同的字符，存储的字节不同，对于英文用一个字节，中文用三个字节，最多用六个字节表示一个字符
     * BOM -- byte order mark，字节序（例如UTF-16BE、UTF-16LE等，文件头会用一个不存在的字符0xFEFF（BE）、0xFFFE(LE)表示）
     * @param args
     */
    public static void main(String[] args) {
        Charset.availableCharsets().forEach((k,v) ->{
            System.out.println(k + ": " + v);
        });
    }
}
